package com.xian.d8_api_object;

import java.util.Objects;

/**
 * 问题思考
 * 直接比较两个对象的地址是否相同完全可以用“==”替代equals。
 *
 * equals存在的意义
 * ·父类equals方法存在的意义就是为了被子类重写，以便子类自己来定制比较规则。
 *
 *
 * 1. Object的equals方法的作用是什么?
 *
 * 默认是与另一个对象比较地址是否一样
 * 让子类重写，以便比较2个子类对象的内容是否相同
 *
 * 目标:掌握Object类中equals方法的使用。
 */
public class Test2 {
    public static void main(String[] args) {
        Student s1 = new Student("贤",'男',18);
        Student s2 = new Student("贤",'男',18);
        //equals默认是比较2个对象的地址是否相同。
        //System.out.println(s1.equals(s2)); //false
        //System.out.println(s1==s2); //false

        //子类重写了equals
        System.out.println(s1.equals(s2)); //true
        System.out.println(s1==s2); //false


        //使用objects的equals
        System.out.println(Objects.equals(s1,s2));//true
        /**    源码
         *     public static boolean equals(Object a, Object b) {
         *         return (a == b) || (a != null && a.equals(b));
         *     }
         */

    }
}
